package com.spring.aop;

import java.lang.reflect.Method;

public class PointcutParser {
    
    /**
     * 简单的切点表达式匹配
     * 支持 execution(* com.xiejun.service.*.*(..)) 这样的表达式
     */
    public static boolean matches(String expression, Class<?> targetClass, Method method) {
        if (expression == null || expression.isEmpty()) {
            return false;
        }
        
        // 移除 execution 前缀
        if (expression.startsWith("execution(") && expression.endsWith(")")) {
            expression = expression.substring(10, expression.length() - 1);
        }
        
        // 简化处理，只处理 com.xiejun 包下的类
        String className = targetClass.getName();
        
        // 检查表达式是否匹配类名
        // 例如: com.xiejun.service.*.* 匹配 com.xiejun.service.impl.UserServiceImpl
        if (expression.contains("com.xiejun.service.") && className.startsWith("com.xiejun.service.")) {
            return true;
        }
        
        // 更复杂的匹配规则可以在这里实现
        return false;
    }
}